gtk4.git
7 years agoMerge branch 'wip/jimmac/focus-ring-radii' into 'master'
Matthias Clasen [Wed, 20 Mar 2019 12:32:15 +0000 (12:32 +0000)]
Merge branch 'wip/jimmac/focus-ring-radii' into 'master'

Adwaita: draw bigger radius for focus rings

Closes #1756

See merge request GNOME/gtk!649

7 years agowindow: Update state flags
Matthias Clasen [Wed, 20 Mar 2019 00:07:53 +0000 (20:07 -0400)]
window: Update state flags

When the window gets active / inactive, we
don't propagate events, but just send focus-in / -out
to the current focus_widget. Improve this by updating
its state flags as well.

7 years agomain: Fix crossing event generation for parented roots
Matthias Clasen [Tue, 19 Mar 2019 23:12:55 +0000 (19:12 -0400)]
main: Fix crossing event generation for parented roots

We were walking the parent chain here, which now
always needs to consider whether it should stop
at roots. Like this one should.

The symptom was that a label with a popup attached to
it would end up with an unintentional focus ring that
would not go away.

7 years agoAdwaita: draw bigger radius for focus rings
Jakub Steiner [Tue, 19 Mar 2019 13:07:10 +0000 (14:07 +0100)]
Adwaita: draw bigger radius for focus rings

Fixes https://gitlab.gnome.org/GNOME/gtk/issues/1756

7 years agogtk: Don't include gtkstylecontext.h from gtkcsstypesprivate.h
Benjamin Otte [Sat, 16 Mar 2019 03:48:26 +0000 (04:48 +0100)]
gtk: Don't include gtkstylecontext.h from gtkcsstypesprivate.h

And make sure it's included everywhere it's needed.

7 years agostylecontext: Move atk.h include where it belongs
Benjamin Otte [Fri, 15 Mar 2019 21:35:07 +0000 (22:35 +0100)]
stylecontext: Move atk.h include where it belongs

7 years agopaned: hide the handle widget when <2 children are visible
Benjamin Otte [Tue, 12 Mar 2019 01:14:48 +0000 (02:14 +0100)]
paned: hide the handle widget when <2 children are visible

7 years agopaned: Refactor
Benjamin Otte [Tue, 12 Mar 2019 00:41:21 +0000 (01:41 +0100)]
paned: Refactor

Don't call a useless function, call gtk_widget_set_child_visible()
directly.

7 years agosingleselection: Add forgotten notify emission
Benjamin Otte [Sun, 10 Mar 2019 22:45:19 +0000 (23:45 +0100)]
singleselection: Add forgotten notify emission

Also, add docs for the model property while I'm looking at the file.

7 years agorevealer: Always use identity transform for revealed child
Benjamin Otte [Sat, 9 Mar 2019 13:44:06 +0000 (14:44 +0100)]
revealer: Always use identity transform for revealed child

Refactor the child allocation machinery, so that the complex allocation
paths are only run when the animation is running.

And in particular, ensure that when no animation is running, the
identity transform is allocated.

7 years agorenderer: Make gsk_renderer_is_realized() public
Benjamin Otte [Sat, 9 Mar 2019 12:59:03 +0000 (13:59 +0100)]
renderer: Make gsk_renderer_is_realized() public

... and add a property for it.

7 years agorenderer: Remove display property
Benjamin Otte [Sat, 9 Mar 2019 12:36:14 +0000 (13:36 +0100)]
renderer: Remove display property

Renderers don't need a display until they get realized. And once they
get realized, they can look up the display from the surface.

7 years agoOne forgotten leave signal handler
Matthias Clasen [Mon, 18 Mar 2019 19:35:07 +0000 (15:35 -0400)]
One forgotten leave signal handler

7 years agoAdapt to motion controller api change
Matthias Clasen [Mon, 18 Mar 2019 13:24:42 +0000 (09:24 -0400)]
Adapt to motion controller api change

The signature of the enter/leave signals changed.
Adapt all users.

7 years agomotion controller: Install the properties
Matthias Clasen [Mon, 18 Mar 2019 12:44:02 +0000 (08:44 -0400)]
motion controller: Install the properties

Oops

7 years agoMerge branch 'paned-no-grab' into 'master'
Matthias Clasen [Mon, 18 Mar 2019 11:50:42 +0000 (11:50 +0000)]
Merge branch 'paned-no-grab' into 'master'

paned: Don't use a grab

See merge request GNOME/gtk!644

7 years agoMerge branch 'crossing-details' into 'master'
Matthias Clasen [Mon, 18 Mar 2019 01:49:45 +0000 (01:49 +0000)]
Merge branch 'crossing-details' into 'master'

motion controller: add details to signals

See merge request GNOME/gtk!621

7 years agoMerge branch 'wip/carlosg/include-constructors-header' into 'master'
Matthias Clasen [Mon, 18 Mar 2019 01:10:06 +0000 (01:10 +0000)]
Merge branch 'wip/carlosg/include-constructors-header' into 'master'

gdk: Include copy of glib/gconstructor.h

See merge request GNOME/gtk!642

7 years agopaned: Don't use a grab
Matthias Clasen [Sun, 17 Mar 2019 22:55:00 +0000 (18:55 -0400)]
paned: Don't use a grab

It does not seem necessary for proper functioning
of the drag handle.

7 years agoeditable: Fix a thinko
Matthias Clasen [Sun, 17 Mar 2019 22:44:36 +0000 (18:44 -0400)]
editable: Fix a thinko

When dealing with subclasses of GtkEntry, we were not
getting the property offset that is stored on the GtkEntry
type.

This was showing up as criticals when trying to set
::width-chars on a GtkFileChooserEntry.

7 years agogdk: Include copy of glib/gconstructor.h
Carlos Garnacho [Sun, 17 Mar 2019 20:29:59 +0000 (21:29 +0100)]
gdk: Include copy of glib/gconstructor.h

This is named gdkconstructor.h to avoid any possible conflicts. This fixes
the current usages of G_HAS_CONSTRUCTORS, as that header is not installed
by glib.

7 years agoUpdate POTFILES.in
Piotr Drąg [Sun, 17 Mar 2019 16:17:02 +0000 (17:17 +0100)]
Update POTFILES.in

7 years agowidget: Fix a mission annotation
Matthias Clasen [Sun, 17 Mar 2019 05:08:02 +0000 (01:08 -0400)]
widget: Fix a mission annotation

7 years agomotion controller: Add getters for crossing event targets
Matthias Clasen [Sun, 17 Mar 2019 03:44:55 +0000 (23:44 -0400)]
motion controller: Add getters for crossing event targets

This information can be needed in signal handlers,
so make it available.

7 years agomotion controller: Add focus properties
Matthias Clasen [Sun, 17 Mar 2019 03:29:48 +0000 (23:29 -0400)]
motion controller: Add focus properties

Add boolean properties, is-pointer-focus and
contains-pointer-focus, that track whether the pointer
is in the widget itself or in one of its descendants.

7 years agomotion controller: add details to signals
Matthias Clasen [Wed, 6 Mar 2019 19:56:46 +0000 (14:56 -0500)]
motion controller: add details to signals

The ::enter and ::leave signals get emitted up and down the
connecting path between the old an the new pointer location.

The signals are less useful if you can't find out where along
the path you are. That is what crossing mode and detail are
about, so add those to the signals.

7 years agoa11y tests: Clean up the placeholder-text test
Matthias Clasen [Sun, 17 Mar 2019 02:31:03 +0000 (22:31 -0400)]
a11y tests: Clean up the placeholder-text test

This was relying on setting has-focus for initial focus.

7 years agoMerge branch 'wip/matthiasc/focus3' into 'master'
Matthias Clasen [Sun, 17 Mar 2019 02:42:46 +0000 (02:42 +0000)]
Merge branch 'wip/matthiasc/focus3' into 'master'

Move focus to GtkRoot

See merge request GNOME/gtk!640

7 years agoxim: Stop using GtkWidget::event
Matthias Clasen [Sun, 17 Mar 2019 02:16:10 +0000 (22:16 -0400)]
xim: Stop using GtkWidget::event

It does not exist anymore. I'm removing this code now
because our CI tests are using xim and fail due to this.

Eventually, this code should be ported to use a popover.

7 years agoa11y tests: Update expected results
Matthias Clasen [Sun, 17 Mar 2019 01:49:24 +0000 (21:49 -0400)]
a11y tests: Update expected results

The changes here are all related to initial focus.

7 years agoUpdate the focus test
Matthias Clasen [Fri, 8 Mar 2019 04:25:50 +0000 (23:25 -0500)]
Update the focus test

Check that we get the expected sequences of focus
change events for the nonlinear, inferior and ancestor
cases.

It would be nice to do the same checks for crossing
events, but we have no gtk_window_set_hover().

7 years agoUse root in gdk_synthesize_crossing_events
Matthias Clasen [Sat, 16 Mar 2019 07:06:29 +0000 (03:06 -0400)]
Use root in gdk_synthesize_crossing_events

7 years agoMake gtk_widget_get_focus_child public
Matthias Clasen [Fri, 8 Mar 2019 18:46:17 +0000 (13:46 -0500)]
Make gtk_widget_get_focus_child public

It doesn't really make sense to have only
the setter, but not the getter public.

7 years agoAdd key controller API to the docs
Matthias Clasen [Fri, 8 Mar 2019 16:44:43 +0000 (11:44 -0500)]
Add key controller API to the docs

A bunch of API was missing here.

7 years agokey controller: Enforce limitations of key forwarding
Matthias Clasen [Fri, 8 Mar 2019 15:21:02 +0000 (10:21 -0500)]
key controller: Enforce limitations of key forwarding

We now set current_event for focus-change as well,
so make sure to check the event type.

7 years agokey controller: Improve the docs
Matthias Clasen [Fri, 8 Mar 2019 15:19:12 +0000 (10:19 -0500)]
key controller: Improve the docs

Mention the limitations of the key forwarding api.

7 years agokey controller: Add getters for focus event targets
Matthias Clasen [Fri, 8 Mar 2019 15:16:27 +0000 (10:16 -0500)]
key controller: Add getters for focus event targets

This information can be needed in signal handlers,
so make it available.

7 years agokey controller: Add focus properties
Matthias Clasen [Fri, 8 Mar 2019 14:55:27 +0000 (09:55 -0500)]
key controller: Add focus properties

Add boolean properties, is-focus and contains-focus, that
track whether the focus is in the widget itself or in
one of its descendants.

7 years agokey controller: Fix a copy/paste error
Matthias Clasen [Fri, 8 Mar 2019 14:20:06 +0000 (09:20 -0500)]
key controller: Fix a copy/paste error

Prefix the finalize function properly.

7 years agoPass mode and detail to focus-in/out signals
Matthias Clasen [Thu, 7 Mar 2019 05:14:26 +0000 (00:14 -0500)]
Pass mode and detail to focus-in/out signals

This information is useful when maintaining a
'last focus' field.

Update all users.

7 years agoMove maintaining the focus chain
Matthias Clasen [Fri, 8 Mar 2019 18:52:46 +0000 (13:52 -0500)]
Move maintaining the focus chain

Put this code in the same place where we generate
the crossing events.

7 years agoSome fixes to crossing event generation
Matthias Clasen [Fri, 8 Mar 2019 14:08:05 +0000 (09:08 -0500)]
Some fixes to crossing event generation

In the inferior and ancestor cases, we were missing
the initial/final event.

7 years agowindow: Use gtk_synthesize_crossing_events
Matthias Clasen [Thu, 7 Mar 2019 04:40:29 +0000 (23:40 -0500)]
window: Use gtk_synthesize_crossing_events

Emit focus change events in the same way as crossing events.
Also change the code to only emit focus change events for
the master keyboard - we only maintain a single focus location,
so sending multiple focus change events for different devices
seems confusing.

7 years agoExport gtk_synthesize_crossing_events internally
Matthias Clasen [Thu, 7 Mar 2019 04:39:53 +0000 (23:39 -0500)]
Export gtk_synthesize_crossing_events internally

We want to use this for focus changes, now that
it can emit focus change events.

7 years agoShare crossing and focus change event code
Matthias Clasen [Thu, 7 Mar 2019 03:25:31 +0000 (22:25 -0500)]
Share crossing and focus change event code

Make a single function that can emit both
enter/leave and focus change events.

7 years agogdk: Add a related_target field to some events
Matthias Clasen [Fri, 8 Mar 2019 16:12:30 +0000 (11:12 -0500)]
gdk: Add a related_target field to some events

Crossing and focus change events are emitted between
two widgets, and want to associate both with the
events.

7 years agogdk: Rename gdk_event_set_user_data
Matthias Clasen [Fri, 8 Mar 2019 16:27:16 +0000 (11:27 -0500)]
gdk: Rename gdk_event_set_user_data

Lets call it what it is, the target.
All of this is private api anyway.

Update all callers.

7 years agogdk: Add crossing mode and detail to focus events
Matthias Clasen [Wed, 6 Mar 2019 21:55:27 +0000 (16:55 -0500)]
gdk: Add crossing mode and detail to focus events

We want focus events more similar to crossing events.

7 years agoClarify grab_focus docs
Matthias Clasen [Tue, 5 Mar 2019 01:15:39 +0000 (20:15 -0500)]
Clarify grab_focus docs

7 years agowindow: Remove initial-focus builder support
Matthias Clasen [Sun, 3 Mar 2019 17:31:12 +0000 (12:31 -0500)]
window: Remove initial-focus builder support

With focus-widget now a property, this is no longer needed.

7 years agowindow: Remove ::set-focus
Matthias Clasen [Sat, 16 Mar 2019 05:28:23 +0000 (01:28 -0400)]
window: Remove ::set-focus

The focus-widget is now a property, so we don't need
this signal anymore.

7 years agopopover: Stop using ::set-focus
Matthias Clasen [Sun, 3 Mar 2019 13:10:14 +0000 (08:10 -0500)]
popover: Stop using ::set-focus

This will change completely when GtkPopover becomes a
root. For now, stop using ::set-focus and just use the
focus-widget property.

7 years agofilechooser: Stop using ::set-focus
Matthias Clasen [Sun, 3 Mar 2019 13:06:53 +0000 (08:06 -0500)]
filechooser: Stop using ::set-focus

We can achieve the same with the focus-widget property.

7 years agoinspector: Stop using ::set-focus
Matthias Clasen [Sun, 3 Mar 2019 12:55:14 +0000 (07:55 -0500)]
inspector: Stop using ::set-focus

The focus-widget is just a regular property now that shows
up on the property page. No need to special-case it on
the misc page anymore.

7 years agoDrop gtk_widget_send_focus_change
Matthias Clasen [Sun, 3 Mar 2019 02:03:38 +0000 (21:03 -0500)]
Drop gtk_widget_send_focus_change

Replace this with gtk_widget_set_has_focus + gtk_widget_event.

7 years agowidget: Add a private setter for has-focus
Matthias Clasen [Thu, 7 Mar 2019 03:26:27 +0000 (22:26 -0500)]
widget: Add a private setter for has-focus

7 years agoExclude non-drawable widgets from focus
Matthias Clasen [Sun, 3 Mar 2019 01:32:11 +0000 (20:32 -0500)]
Exclude non-drawable widgets from focus

This was showing up as confusion between palette
and editor in the color chooser.

7 years agowidget: Drop the ::focus signal
Matthias Clasen [Sat, 2 Mar 2019 18:22:43 +0000 (13:22 -0500)]
widget: Drop the ::focus signal

The focus vfunc is an implementation detail
of GTK focus handling, and having external
signal handlers interfere with it is not
a good idea.

7 years agoSimplify the move_focus api
Matthias Clasen [Sat, 2 Mar 2019 17:52:56 +0000 (12:52 -0500)]
Simplify the move_focus api

No need to pass the array in from the outside.

7 years agoMove a check to gtk_window_set_focus
Matthias Clasen [Sat, 2 Mar 2019 16:40:09 +0000 (11:40 -0500)]
Move a check to gtk_window_set_focus

gtk_widget_grab_focus is just a wrapper for
gtk_window_set_focus. We should do all the enforcement
there.

7 years agoPort widgets to the root focus API
Matthias Clasen [Sat, 2 Mar 2019 13:49:00 +0000 (08:49 -0500)]
Port widgets to the root focus API

7 years agowindow: Implement the root focus api
Matthias Clasen [Sat, 2 Mar 2019 13:46:21 +0000 (08:46 -0500)]
window: Implement the root focus api

This just uses the existing get/set_focus functions.
We keep them public for now.

7 years agoroot: Add focus
Matthias Clasen [Sat, 2 Mar 2019 13:45:13 +0000 (08:45 -0500)]
root: Add focus

Add a getter and a setter for the focus widget.
The default implementations do nothing.

7 years agoRedo focus handling
Matthias Clasen [Sat, 2 Mar 2019 05:54:56 +0000 (00:54 -0500)]
Redo focus handling

GtkWindow has a focus_widget that points to the current input focus.
GtkWidget has a focus_child that points to the child that contains
the input focus. Following the focus_child chain from the toplevel
always leads to the focus_widget. We never unset focus_child, we only
set it. We bubble focus change events.

7 years agopassword entry: Fix property notification
Matthias Clasen [Sun, 17 Mar 2019 01:03:52 +0000 (21:03 -0400)]
password entry: Fix property notification

Both placeholder-text and activates-default were not
up to our usual standards for property notification,
and the tests complained.

7 years agosearch entry: Fix property notification
Matthias Clasen [Sun, 17 Mar 2019 00:57:50 +0000 (20:57 -0400)]
search entry: Fix property notification

Both placeholder-text and activates-default were not
up to our usual standards for property notification,
and the tests complained.

7 years agosingle selection: Skip tests properly
Matthias Clasen [Sun, 17 Mar 2019 00:41:51 +0000 (20:41 -0400)]
single selection: Skip tests properly

Do runtime checks for the GLib version,
instead of compiling out tests.
This avoids compiler warnings.

7 years agowidget: Check rootness for invisibility
Matthias Clasen [Sun, 24 Feb 2019 13:19:05 +0000 (08:19 -0500)]
widget: Check rootness for invisibility

Make the function that determines initial visibility
look at whether the class implements GtkRoot. That is
the eventual goal for this check. For now, allow
popovers in here as well.

7 years agoUpdate Catalan translation
Jordi Mas [Sat, 16 Mar 2019 21:06:43 +0000 (22:06 +0100)]
Update Catalan translation

7 years agopassword entry: Don't show both icons
Matthias Clasen [Fri, 15 Mar 2019 18:35:25 +0000 (14:35 -0400)]
password entry: Don't show both icons

It can be a bit confusing to have an indicator
and an action next to each other, and with the
peek icon, the need for the Caps Lock warning is
reduced, since you can just reveal the text to
see that it is capitalized.

Therefore, only show the Caps Lock warning if
the peek icon is disabled.

7 years agoAdd a tagged entry demo
Matthias Clasen [Fri, 15 Mar 2019 14:34:06 +0000 (10:34 -0400)]
Add a tagged entry demo

This can serve as an example for how composite entries
can now be done outside of GTK, easily.

7 years agogtk-demo: Show password peek icon
Matthias Clasen [Thu, 14 Mar 2019 22:53:28 +0000 (18:53 -0400)]
gtk-demo: Show password peek icon

7 years agopassword entry: Add a way to see the content
Matthias Clasen [Wed, 13 Mar 2019 20:27:07 +0000 (16:27 -0400)]
password entry: Add a way to see the content

Add a ::show-peek-icon property and show a clickable
icon when it is set. Clicking it toggles the visibility
of the content. The same functionality is also accessible
via a context menu item.

This is a common feature of password entries.

7 years agopassword entry: Make the Caps Lock icon less prominent
Matthias Clasen [Fri, 15 Mar 2019 00:03:34 +0000 (20:03 -0400)]
password entry: Make the Caps Lock icon less prominent

Set a style class, and theme the Caps Lock icon to
be  less promient, so it does not appear clickable.

7 years agopassword entry: Use text cursor for Caps Lock indicator
Matthias Clasen [Thu, 14 Mar 2019 23:17:39 +0000 (19:17 -0400)]
password entry: Use text cursor for Caps Lock indicator

We don't want it to appear clickable, but we still
need to keep it pickable for the tooltip to work,
so explicitly give it the same cursor that we use
for the text.

7 years agoentry: Make progress bar not pickable
Matthias Clasen [Thu, 14 Mar 2019 23:15:31 +0000 (19:15 -0400)]
entry: Make progress bar not pickable

There is no need for that, we don't want to
handle input here at all.

7 years agopassword entry: a better Caps Lock icon
Matthias Clasen [Thu, 14 Mar 2019 22:59:35 +0000 (18:59 -0400)]
password entry: a better Caps Lock icon

This is more in line with how Caps Lock
is typically indicated.

7 years agogtk-demo: Add a password entry demo
Matthias Clasen [Wed, 13 Mar 2019 22:53:13 +0000 (18:53 -0400)]
gtk-demo: Add a password entry demo

7 years agopassword entry: Add placeholder-text and activates-default
Matthias Clasen [Wed, 13 Mar 2019 23:17:19 +0000 (19:17 -0400)]
password entry: Add placeholder-text and activates-default

Add ::placeholder-text and ::activates-default properties.
Password entries are going to be used in dialogs, where
these two properties are useful.

7 years agopassword entry: Initialize capslock state
Matthias Clasen [Wed, 13 Mar 2019 20:34:27 +0000 (16:34 -0400)]
password entry: Initialize capslock state

The icon was erroneously showing up before the first
focus-in event.

7 years agoa11y: More entry fixes
Matthias Clasen [Wed, 13 Mar 2019 21:44:01 +0000 (17:44 -0400)]
a11y: More entry fixes

Remove the GtkEntry assumption from more places.

7 years agoUpdated Slovenian translation
Matej Urbančič [Tue, 12 Mar 2019 19:25:31 +0000 (20:25 +0100)]
Updated Slovenian translation

7 years agoUpdate Dutch translation
Nathan Follens [Sun, 10 Mar 2019 13:02:39 +0000 (13:02 +0000)]
Update Dutch translation

7 years agotext: Simplify
Benjamin Otte [Fri, 8 Mar 2019 13:12:17 +0000 (14:12 +0100)]
text: Simplify

The previous arguments were equivalent to using NULL.

7 years agotext: Remove two unused member variables
Benjamin Otte [Fri, 8 Mar 2019 13:12:04 +0000 (14:12 +0100)]
text: Remove two unused member variables

7 years agotext: Use gtk_widget_set_overflow()
Benjamin Otte [Fri, 8 Mar 2019 12:39:52 +0000 (13:39 +0100)]
text: Use gtk_widget_set_overflow()

7 years agotext: Remove 2 unused variables
Benjamin Otte [Fri, 8 Mar 2019 12:33:54 +0000 (13:33 +0100)]
text: Remove 2 unused variables

One is always 0, the other is always equal to gtk_widget_get_width()

7 years agocolorswatch: Use gtk_widget_set_overflow()
Benjamin Otte [Fri, 8 Mar 2019 12:19:13 +0000 (13:19 +0100)]
colorswatch: Use gtk_widget_set_overflow()

7 years agowidget: Make overflow respect rounded corners
Benjamin Otte [Fri, 8 Mar 2019 12:17:51 +0000 (13:17 +0100)]
widget: Make overflow respect rounded corners

Fixes !574

7 years agogsk: API docs fixes
Bastien Nocera [Thu, 7 Mar 2019 15:29:28 +0000 (16:29 +0100)]
gsk: API docs fixes

gsk/gskenums.h:181: Error: Gsk: multiple "@GSK_TRANSFORM_CATEGORY_2D" parameters for identifier "GskTransformCategory":
 * @GSK_TRANSFORM_CATEGORY_2D: The matrix is a 2D matrix. This is equivalent
    ^
gsk/gsktransform.c:1342: Warning: Gsk: gsk_transform_to_2d: unknown parameter 'm' in documentation comment, should be 'self'
gsk/gsktransform.c:1368: Warning: Gsk: gsk_transform_to_2d: invalid return annotation
gsk/gsktransform.c:1461: Warning: Gsk: gsk_transform_to_translate: unknown parameter 'm' in documentation comment, should be 'self'

7 years agorevealer: Add swing transitions
Benjamin Otte [Thu, 7 Mar 2019 12:06:37 +0000 (13:06 +0100)]
revealer: Add swing transitions

And make the revealer on page 2 of the widget-factory use one.

7 years agoUpdate Polish translation
Piotr Drąg [Thu, 7 Mar 2019 10:56:27 +0000 (11:56 +0100)]
Update Polish translation

7 years agox11: Don't emit GDK_NOTHING events
Matthias Clasen [Thu, 7 Mar 2019 04:38:52 +0000 (23:38 -0500)]
x11: Don't emit GDK_NOTHING events

They are good for nothing.

7 years agorendernode: Add can_diff implementation for transform nodes
Benjamin Otte [Wed, 6 Mar 2019 11:39:56 +0000 (12:39 +0100)]
rendernode: Add can_diff implementation for transform nodes

That one was missing and killing performance in the fishbowl.

7 years agoentry: Update CSS node docs
Timm Bäder [Wed, 6 Mar 2019 08:03:17 +0000 (09:03 +0100)]
entry: Update CSS node docs

Remove all the nodes that are subnodes of GtkText nowadays and refer to
the GtkText docs instead.

7 years agogl renderer: Cache rendered fallback nodes
Timm Bäder [Tue, 5 Mar 2019 08:03:11 +0000 (09:03 +0100)]
gl renderer: Cache rendered fallback nodes

7 years agogl renderer: Mark pointer textures as used
Timm Bäder [Tue, 5 Mar 2019 08:00:55 +0000 (09:00 +0100)]
gl renderer: Mark pointer textures as used

Otherwise we remove them, causing additional texture uploads.

7 years agotransform: Add perspective()
Benjamin Otte [Tue, 5 Mar 2019 08:27:30 +0000 (09:27 +0100)]
transform: Add perspective()

This commit adds gsk_transform_perspective(), gtk_snapshot_perspective()
and support for perspective() in the CSS syntax.

7 years agorendernode: Implement diffing of transform nodes
Benjamin Otte [Mon, 4 Mar 2019 21:11:57 +0000 (22:11 +0100)]
rendernode: Implement diffing of transform nodes

This reinstates diffing in the same way that it worked for offset nodes.

It would be possible to add diffing for affine transforms or even all
transforms, but I think this is unnecessary right now - and also quite
expensive to compute.

7 years agotransform: Readd optimization
Benjamin Otte [Mon, 4 Mar 2019 20:43:44 +0000 (21:43 +0100)]
transform: Readd optimization

This is the optimization from bbd4e2f60d9e060fbe3b0c2dcebcd1d6b7335a2a